using admin.core.Entities;
using admin.core.Common;

namespace admin.core.Repositories;

public interface IRepository<T> where T : EntityBase
{
    Task<List<T>> GetAllAsync();
    Task<T?> GetByIdAsync(Guid id);
    Task<T> AddAsync(T entity);
    Task UpdateAsync(T entity);
    Task DeleteAsync(T entity);
    Task<bool> DeleteAsync(Guid id);
    Task<PaginationResult<T>> GetPagedAsync(PaginationRequest request);
}